Composition and Reuse with Compiled Domain-Specific Languages

نویسندگان

  • Arvind K. Sujeeth
  • Tiark Rompf
  • Kevin J. Brown
  • HyoukJoong Lee
  • Hassan Chafi
  • Victoria Popic
  • Michael Wu
  • Aleksandar Prokopec
  • Vojin Jovanovic
  • Martin Odersky
  • Kunle Olukotun
چکیده

Programmers who need high performance currently rely on low-level, architecture-specific programming models (e.g. OpenMP for CMPs, CUDA for GPUs, MPI for clusters). Performance optimization with these frameworks usually requires expertise in the specific programming model and a deep understanding of the target architecture. Domain-specific languages (DSLs) are a promising alternative, allowing compilers to map problem-specific abstractions directly to low-level architecture-specific programming models. However, developing DSLs is difficult, and using multiple DSLs together in a single application is even harder because existing compiled solutions do not compose together. In this paper, we present four new performance-oriented DSLs developed with Delite, an extensible DSL compilation framework. We demonstrate new techniques to compose compiled DSLs embedded in a common backend together in a single program and show that generic optimizations can be applied across the different DSL sections. Our new DSLs are implemented with a small number of reusable components (less than 9 parallel operators total) and still achieve performance up to 125x better than library implementations and at worst within 30% of optimized stand-alone DSLs. The DSLs retain good performance when composed together, and applying cross-DSL optimizations results in up to an additional 1.82x improvement.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Four Related Dsls Improving Domain- Specific Language Reuse with Software Product Line Techniques Domain-specific Modeling

However, this narrow scope makes it hard to reuse a DSL for a new set of requirements (see the “Reusing and Adapting Domain-Specific Languages” sidebar). We’ve developed two ways to improve reusability and decrease language reuse errors for DSLs and DSL compositions. First, a DSL can incorporate variability and codified configuration rules to enable its refinement for multiple domains. Second, ...

متن کامل

Mixins and Extenders for Modular Metamodel Customisation

Metamodelling is a practical yet rigorous formalism for modelling language definition with a metamodel being its pivotal engineering artifact. A multitude of domain-specific modelling languages (DSML) are engineered to cover various modelling domains. Metamodels of such languages evolve over time by introducing changes and extensions and are further customised to suite project-specific needs. W...

متن کامل

Extending grammars and metamodels for reuse: the Reuseware approach

The trend toward domain-specific languages leads to an ever-growing plethora of highly specialized languages. Developers of such languages focus on their specific domains rather than on technical challenges of language design. Generic features of languages are rarely included in special-purpose languages. One very important feature is the ability to formulate partial programs in separate encaps...

متن کامل

Globalizing Domain - Specific Languages

This report documents the program and the outcomes of the Dagstuhl Seminar 14412 “Globalizing Domain-Specific Languages” held in October 2014. Complex, data-intensive, cyber-physical, cloud-based etc. systems need effective modeling techniques, preferably based on DSLs to describe aspects and views. Models written in heterogeneous languages however need to be semantically compatible and their s...

متن کامل

Improving Domain-specific Language Reuse through Software Product-line Configuration Techniques

It is time consuming to develop a domain-specific language (DSL) or a composition of DSLs to model a system concern, such as deploying and configuring software components to meet real-time scheduling constraints. Ideally, developers should be able to reuse DSLs and DSL compositions across projects to amortize development effort. It can be hard to reuse DSLs, however, since they are often design...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013